﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Linq.Mapping;
using System.Text;
using SRD.Model.SRD.DTO;
using SRD.Model.SRD.Util;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;
using System.Configuration;

namespace SRD.Model.SRD.DAO
{
    class StatusSubmissaoDAO
    {
        DataClassesSRDDataContext bancoDados = new DataClassesSRDDataContext();
                        
        // metodo de busca por parte do nome do setor         
        public IQueryable findByName(string descricaoStatusSubmissao)
        {
            var resultado = from s in bancoDados.STATUS_SUBMISSAOs
                            where s.DESCRICAO.Contains(descricaoStatusSubmissao)
                            select s;
            return resultado;

        }

        //metodo de busca pelo id do setor 
        public STATUS_SUBMISSAO findById(STATUS_SUBMISSAO statusSubmissao)
        {
            var resultado = (from s in bancoDados.STATUS_SUBMISSAOs
                            where s.STATUS_SUBMISSAO_ID == statusSubmissao.STATUS_SUBMISSAO_ID
                            select s).First();

            return resultado;
        }

        //metodo para busca completa do setor ordenado
        public IQueryable findAll()
        {
            var resultado = from s in bancoDados.STATUS_SUBMISSAOs
                            select s;

            return resultado;
        }

        // metodo para iserção do setor
        public string insert(STATUS_SUBMISSAO statusSubmissao)
        {
            try
            {
                bancoDados.STATUS_SUBMISSAOs.InsertOnSubmit(statusSubmissao);
                bancoDados.SubmitChanges();
                return "Inclusão realizada com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro na inclusão: " + o.Message;
            }
        }

        // metodo para atualização do setor
        public string update(STATUS_SUBMISSAO statusSubmissao)
        {
            try
            {
                var statusSubmissaoExistente = (from s in bancoDados.STATUS_SUBMISSAOs
                                        where s.STATUS_SUBMISSAO_ID == statusSubmissao.STATUS_SUBMISSAO_ID
                                        select s).First();
                statusSubmissaoExistente.DESCRICAO = statusSubmissao.DESCRICAO;
                statusSubmissaoExistente.ATIVO = statusSubmissao.ATIVO;
                statusSubmissaoExistente.EMPRESA_ID = statusSubmissao.EMPRESA_ID;
                bancoDados.SubmitChanges();
                return "Atualização realizada com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro na atualização: " + o.Message;
            }
        }

        // metodo para remoção do setor
        public string delete(STATUS_SUBMISSAO statusSubmissao)
        {
            try
            {
                var statusSubmissaoExistente = (from s in bancoDados.STATUS_SUBMISSAOs
                                    where s.STATUS_SUBMISSAO_ID == statusSubmissao.STATUS_SUBMISSAO_ID
                                    select s).First();
                STATUS_SUBMISSAO set = statusSubmissaoExistente;
                bancoDados.STATUS_SUBMISSAOs.DeleteOnSubmit(set);
                bancoDados.SubmitChanges();
                return "Registro excluído com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro ao excluir: " + o.Message;
            }
        }
    }
}
